package com.lancoo.znbkxx.teacher.widget;


import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.ViewDebug;
import android.widget.TextView;

@SuppressLint("AppCompatCustomView")
public class FocusableTextView extends TextView {

    public FocusableTextView(Context context, AttributeSet attrs, int defStyle) {

        super(context, attrs, defStyle);

        System.out.println("3个参数的构造方法");

        init();

    }



    public FocusableTextView(Context context, AttributeSet attrs) {

        super(context, attrs);

        init();

        System.out.println("2个参数的构造方法");

    }

    /**

     * 初始化textView

     */

//    <!--

//    android:ellipsize="marquee" 跑马灯

//   android:focusable="true" //物理键获取到焦点

//   android:focusableInTouchMode="true" //手指触摸获取到焦点

//   android:singleLine="true" 单行展示

//   android:marqueeRepeatLimit="marquee_forever" 跑马灯循环

//-->

    private void init() {

        setEllipsize(TextUtils.TruncateAt.MARQUEE);

        setFocusable(true);

        setFocusableInTouchMode(true);

        setSingleLine();

        setMarqueeRepeatLimit(-1);

    }



    public FocusableTextView(Context context) {

        super(context);

        init();

        System.out.println("1个参数的构造方法");

    }



    // <!--

    // android:ellipsize="marquee" 跑马灯

    // android:focusable="true" //物理键获取到焦点

    // android:focusableInTouchMode="true" //手指触摸获取到焦点

    // android:singleLine="true" 单行展示

    // android:marqueeRepeatLimit="marquee_forever" 跑马灯循环 -->









    /**

     * 让两个控件同时获取到焦点

     */

    @Override

    @ViewDebug.ExportedProperty(category = "focus")

    public boolean isFocused() {

        // TODO Auto-generated method stub

        return true;

    }

    /**

     * 不管谁获取到焦点。那么都开启跑马灯

     */

    @Override

    protected void onFocusChanged(boolean focused, int direction,

                                  Rect previouslyFocusedRect) {

        if(focused){

            super.onFocusChanged(focused, direction, previouslyFocusedRect);

        }



    }

    /**

     * 窗体获取到焦点

     */

    @Override

    public void onWindowFocusChanged(boolean hasWindowFocus) {

        if(hasWindowFocus){

            super.onWindowFocusChanged(hasWindowFocus);

        }



    }



}

